package br.com.hmm.businesslogic;

import java.util.List;

import br.com.hmm.dao.ItemCategoriaDAO;
import br.com.hmm.entidade.ItensCategoria;

/**
 * 
 * @author carlos
 *
 */
public class ItensCategoriaService {

	/**
	 * Construtor da Classe ItensCategoriaService
	 */
	private ItensCategoriaService(){
		
	}
	
	/**
	 * 
	 * @param itensCategoria
	 * @return
	 */
	public static boolean inserir(ItensCategoria itensCategoria){
		try{
			if(checarItensCategoria(itensCategoria) == true){
				return false;
			}
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			if(iDao.inserir(itensCategoria) == true){
				return true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}		
		
		return false;
	}
	
	/**
	 * 
	 * @param itensCategoria
	 * @return
	 */
	private static boolean checarItensCategoria(ItensCategoria itensCategoria){
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			if(iDao.existeItemCategoria(itensCategoria) == true){
				return true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return false;		
	}
	
	/**
	 * 
	 * @param itensCategoria
	 * @return
	 */
	public static boolean delete(ItensCategoria itensCategoria){
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			if(iDao.delete(itensCategoria) ==  true){
				return true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return false;
	}
	
	/**
	 * 
	 * @param itensCategoria
	 * @return
	 */
	public static boolean atualizar(ItensCategoria itensCategoria){
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			if(iDao.atualizar(itensCategoria) == true){
				return true;
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return false;
	}
	
	/**
	 * 
	 * @return
	 */
	public static List<ItensCategoria> list(){
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			return iDao.list();
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return null;
	}
	
	public static List<ItensCategoria> listByCategoria(int id) throws Exception{
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			return iDao.listByCategoria(id);
		}catch(Exception e){
			throw new Exception("Não foi possível listar os ítens de categoria. " + e.getMessage());
		}		
	}
	
	
	public static ItensCategoria findById(int id) throws Exception{
		try{
			ItemCategoriaDAO iDao = new ItemCategoriaDAO();
			ItensCategoria it = new ItensCategoria();
			it = iDao.findById(id);
			if(it != null){
				return it;
			}
		}catch (Exception e) {
			throw new Exception(e.getMessage());
		}
		return null;
	}
}
